#!/bin/bash
#if条件
#字符串比较 =(等于)(==也可以)  !=(不等于)  -z(长度为0)  -n(长度不为0)
if [ "ok" = "ok1" ]   #每个元素(包括括号、字符串值和运算符)之间都必须有空格分隔
# if [ -z "$1" ]  # ""强烈不建议省略，因为在很多情况下会导致逻辑错误(有哪些情况问ai吧)
then              
   echo "字符串相同"
else 
   echo "字符串不相同"
fi  #结束语句

#整数比较
#-lt(小于)  -gt(大于) -eq(等于)   -le(小于等于)     -ge(大于等于)     -ne(不等于)
#LessThan  GreaterThan  Equal  LessThanOrEqual  GreaterThanOrEqual  NotEqual
A=5
if [ $A -lt 3 ]  #在[]条件判断中，变量都需要加$，数字变量可以不加""使用
then 
   echo "小于"
elif (( A -eq $1 ))  # 在(( ))中可以直接使用数字变量，不需要加$，除了命令行参数
then                 # elif后也要有then
   echo "等于"
else
   echo "5 不小于 3"  # 实际上会输出这个，因为5既不小于3也不等于3
fi

#文件权限和文件类型比较
:<<!
按照文件权限进行判断
 -r 有读的权限
 -w 有写的权限
 -x 有可执行的权限
按照文件的类型进行判断
 -f 文件存在，并且是一个常规文件
 -e 文件存在
 -d 文件存在并且文件是一个目录
!
if [ -f ./var1.sh ] 
#确定的路径不需要使用""包裹，但是如果路径中包含空格或者使用了"*"等通配符，就必须使用""包裹
then
  echo "文件存在"
fi

:<<!
if条件中的特殊写法
if [ abc ]  表示条件为true
if [ ] 表示条件为false
!


#case语句
case $1 in
  "6") 
  	echo "第一个命令参数为$1";;   #;;是case语句的结束标志(等价break)，可单独一行使用
  *) 
  	echo "没有命令参数";;
esac  #结束语句


#for循环
#第一种，遍历值组
for i in $@ 520   #i也是全局变量
do 
   echo "命令行参数为$i"
done 

#第二种，次数遍历(c++遍历)
SUM=0
for(( i=1;i<=50;i++ ))
do 
	SUM=$[$SUM+$i]
done
echo "1到50和为$SUM"

#while循环
i=1;SUM=0    #变量批量赋值用 ; 隔开，不用换行
while [ $i -ne 3 ]
do 
  echo "我是while循环测试"
  i=$(($i+1))
done
